package com.ruicar.afs.cloud.common.modules.dto.mq.loan.contractdto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumDeserializer;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumSerializer;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.BusinessStageEnum;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.BusinessTypeEnum;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.ChannelTypeEnum;
import com.ruicar.afs.cloud.common.modules.afscorebusiness.enums.CustTypeEnum;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @param
 * @author yk.Li
 * @description 合同渠道信息记录
 * @date 2020/7/8
 */
@Data
public class ContractChannelInfoDTO {
    /**
     * 合同号码
     */
    @JSONField(name = "contractNo")
    private String contractNo;
    /**
     * 渠道类型 枚举值：合作商，直营车商
     */
    @JSONField(name = "channelType", serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    private ChannelTypeEnum channelType;
    /**
     * 联系人
     */
    @JSONField(name = "contactName")
    private String contactName;
    /**
     * 联系人电话
     */
    @JSONField(name = "contactPhone")
    private String contactPhone;
    /**
     * 统一社会信用代码
     */
    @JSONField(name = "socUniCrtCode")
    private String socUniCrtCode;
    /**
     * 合作商代码
     */
    @JSONField(name = "partnerCode")
    private String partnerCode;
    /**
     * 合作商全称
     */
    @JSONField(name = "channelFullName")
    private String channelFullName;
    /**
     * 账户类型 个人、企业
     */
    @JSONField(name = "accountType", serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    private CustTypeEnum accountType;
    /**
     * 收款类型;车款、佣金
     */
    @JSONField(name = "collectionType")
    private String collectionType;
    /**
     * 收款方名称
     */
    @JSONField(name = "receivingName")
    private String receivingName;
    /**
     * 收款方账号
     */
    @JSONField(name = "receivingAccount")
    private String receivingAccount;
    /**
     * 收款方银行
     */
    @JSONField(name = "receivingBank")
    private String receivingBank;
    /**
     * 收款方支行
     */
    @JSONField(name = "receivingSubBranch")
    private String receivingSubBranch;
    /**
     * 收款电子联行号
     */
    @JSONField(name = "electronicBankNo")
    private String electronicBankNo;
    /**
     * 开户行省份
     */
    @JSONField(name = "openingBankProvince")
    private String openingBankProvince;
    /**
     * 开户行城市
     */
    @JSONField(name = "openingBankCity")
    private String openingBankCity;


    /**
     * 上线日期
     */
    @JSONField(name = "onlineDate")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date onlineDate;
    /**
     * 注册日期
     */
    @JSONField(name = "registrationDate")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date registrationDate;
    /**
     * 法人
     */
    @JSONField(name = "legalPerson")
    private String legalPerson;
    /**
     * 法人身份证号
     */
    @JSONField(name = "legalPersonIdCard")
    private String legalPersonIdCard;
    /**
     * 管理员邮箱
     */
    @JSONField(name = "channelAdminMail")
    private String channelAdminMail;
    /**
     * 渠道管理员地址-省份
     */
    @JSONField(name = "channelAdminProvince")
    private String channelAdminProvince;
    /**
     * 渠道管理员地址-城市
     */
    @JSONField(name = "channelAdminCity")
    private String channelAdminCity;
    /**
     * 管理员所在区
     */
    @JSONField(name = "channelAdminArea")
    private String channelAdminArea;
    /**
     * 渠道管理员地址-详情
     */
    @JSONField(name = "channelAdminAddress")
    private String channelAdminAddress;

    /** 渠道注册省份 */
    @JSONField(name = "channelProvince")
    private String channelProvince;

    /** 渠道注册城市 */
    @JSONField(name = "channelCity")
    private String channelCity;

    /**
     * 账号属性;新车、二手车
     */
    @JSONField(name = "accountAttribute", serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    private BusinessTypeEnum accountAttribute;
    /**
     * 渠道归属
     */
    @JSONField(name = "channelBelong")
    private String channelBelong;


}
